package com.example.mpandroidchart1107;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;

import com.github.mikephil.charting.charts.BubbleChart;
import com.github.mikephil.charting.components.Description;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.data.BubbleData;
import com.github.mikephil.charting.data.BubbleDataSet;
import com.github.mikephil.charting.data.BubbleEntry;
import com.github.mikephil.charting.interfaces.datasets.IBubbleDataSet;
import java.util.ArrayList;
import java.util.List;

public class Main5Activity extends AppCompatActivity {

    private BubbleChart bubble;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main5);
        /*控制全屏显示*/
//        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
//                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setTitle("泡泡图啊啊啊啊");
        bubble = findViewById(R.id.bubble);/*第一步实例化*/

        float[] f1 ={2f,3f,4f,5f,6f,3f};
        float [] f2={5f,2f,1f,3f,5f,5f};
        float [] f3={1f,4f,3f,2f,3f,6f,};

        List<IBubbleDataSet> b = new ArrayList<>();//调用泡泡图的方法

        BubbleDataSet b1=getDataSet(f1,"人民币");
        b1.setColor(Color.parseColor("#FFDEAD"));
        b.add(b1);

        BubbleDataSet b2=getDataSet(f2,"欧元");
        b2.setColor(Color.parseColor("#FFE4E1"));
        b.add(b2);

        BubbleDataSet b3=getDataSet(f3,"美元");
        b3.setColor(Color.parseColor("#B0E0E6"));
        b.add(b3);

        Description description = new Description();//更改右下角Description 显示内容
        description.setText("汇率泡泡图");
        description.setTextSize(12f);//字体大小
        description.setTextColor(Color.parseColor("#FF6A6A"));//字体颜色
        bubble.setDescription(description);

        BubbleData bubbleData=new BubbleData(b);

        bubble.setData(bubbleData);
        bubble.invalidate();//自动清屏，及屏幕刷新
        //invalidate()是用来刷新View的，
        // 必须是在UI线程中进行工作。比如在修改某个view的显示时，
        // 调用invalidate()才能看到重新绘制的界面。
        // invalidate()的调用是把之前的旧的view从主UI线程队列中pop掉。
    }
    /*2.第二步*/
    private  BubbleDataSet getDataSet(float[]f,String title){

        List<BubbleEntry> data =new ArrayList<>();//Entry相当于坐标值

        for (int x =0; x<f.length;x++) {//遍历浮点数数组
            BubbleEntry bubbleEntry = new BubbleEntry(x, f[x],x);//x坐标y 坐标
            data.add(bubbleEntry);/*加入到点的集合中*/
        }

        return new BubbleDataSet(data,title);
    }

}

